﻿using BLevy.Entidad;
using BLevy.Negocio;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace BLevy.UI
{
    public partial class frmCobradorLiquidacionRegistrarPago : Form
    {
        private int liquidacion_id;
        public frmCobradorLiquidacionRegistrarPago()
        {
            InitializeComponent();
        }

        public frmCobradorLiquidacionRegistrarPago(int id)
        {
            InitializeComponent();
            
            liquidacion_id = id;
        }

        private void IniciarControles()
        {
            txtCobrador.Enabled = false;
            txtFechaLiquidacion.Enabled = false;
            txtImporte.Enabled = false;
            
            this.ActiveControl = dtpFechaPago;
        }

        private void CobradorLiquidacionRegistrarPago_Load(object sender, EventArgs e)
        {
            IniciarControles();

            FindLiquidacionById(liquidacion_id);
        }


        private void FindLiquidacionById(int id)
        {
            try
            {
                CobradorLiquidacion liquidacion = CobradoresLiquidaciones.FindById(id);
                liquidacion.cobrador = Cobradores.FindById(liquidacion.cobrador_id);

                txtCobrador.Text = liquidacion.cobrador.nombre_completo;
                txtFechaLiquidacion.Text = liquidacion.fecha_liquidacion.ToShortDateString();
                txtImporte.Text = "$ " + liquidacion.total.ToString();

            }
            catch(Exception ex)
            {
                MessageBox.Show("Error : " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private Boolean ValidarForm()
        {
            error.Clear();
            bool resultado = true;

            if(string.IsNullOrEmpty(txtObservaciones.Text))
            {
                txtObservaciones.Text = "NO INFORMA";
            }

            return resultado;
        }

        private void btnSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnGuardar_Click(object sender, EventArgs e)
        {
            if(ValidarForm() == true)
            {
                RegistrarPago();
            }
        }

        private void RegistrarPago()
        {
            try
            {
                CobradorLiquidacionPago liquidacionpago = new CobradorLiquidacionPago();
                liquidacionpago.cobradorliquidacion_id = liquidacion_id;
                liquidacionpago.fecha = dtpFechaPago.Value;
                liquidacionpago.observaciones = txtObservaciones.Text;

                int resultado = CobradoresLiquidaciones.CobradorLiquidacionPagoRegistrar(liquidacionpago);
                if (resultado > 0)
                {
                    MessageBox.Show("Los datos se registraron correctamente.", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    this.Close();
                }
                else
                {
                    MessageBox.Show("Ocurrio un error al registrar los datos. Intente nuevamente.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }

            }
            catch(Exception ex)
            {
                MessageBox.Show("Error : " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

        }

    }
}
